package com.csii.adhoc.info.user.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.csii.adhoc.info.user.BatchUpdateUserVo;
import com.csii.adhoc.info.user.UserPo;
import com.csii.adhoc.info.user.UserVo;

import java.util.List;

/**
 * @description: 用户接口层
 * @author: panChuanJiang
 * @create: 2021-01-26 09:04
 */
public interface UserService extends IService<UserPo> {

    /**
     * 增、删、改、用户 按optMode区分接口
     * @param userPo 用户
     * @param optMode A U D
     */
    void userMaintain(UserPo userPo, String optMode);

    /**
     * 查询用户不分页
     * @param userPo
     * @return
     */
    List<UserPo> selectListUser(UserPo userPo);

    /**
     * 查询用户
     * @param usrId
     * @return
     */
    UserPo selectUser(String usrId);

    /**
     * 查询用户
     * @param usrName
     * @return
     */
    UserPo selectUserByUserName(String usrName);

    /**
     * 查询用户分页接口
     * @param userPo
     * @return
     */
    IPage<UserPo> selectPageUser(Page<UserPo> page, UserPo userPo);

    void updateUserInfoByMq(UserPo userPo);

    void updateUserClearPostId(String postId);

    void updateUserClearRoleId(String roleId);

    void updateUserClearDepartId(String departId);

    void updateUserPassword(UserVo vo);

    void updateListUserRoleOrPost(BatchUpdateUserVo batchUpdateUserVo);
}
